package com.doit.day06

object _08_视图限定 {

  implicit def abc(str:String)={
    new Bird1("mingge")
  }

  def main(args: Array[String]): Unit = {
    //视图限定  泛型可以加上限制条件
    def bitBird[T <% Bird1](b:T)=b.fly()
    //下次我用的时候啊，也不确定要传一个什么类型进去

//  bitBird[Aaa](new Aaa))

    //这个类型必须能够调用Bird1这个类中的方法
    //通过隐式转换可以转换成Bird1这个对象的类型才可以传
    bitBird[String]("1")

//    bitBird[Bird](new Bird("小鸟"))

//    implicit def toy2Bird(toyBird: ToyBird)= new Bird("玩具鸟")

//    bitBird[ToyBird](new ToyBird)
  }

}

class ToyBird

class Bird1(val name:String){
  def fly()={println(name + "飞走了")}
}

class Aaa extends Bird1("askdh")
